package uy.com.dino.samefile.dao;

import java.io.Serializable;
import java.util.Collection;
import java.util.List;

public interface Dao<T, Key extends Serializable> {

	public void update(T obj);

	public void insertOrUpdate(T obj);

	public void updateCollection(Collection<T> collection);

	public List<T> consultAll();

	public List<T> consultAllAsc(String attribute);

	public void delete(T obj);

	public void deleteAll(Collection<T> collection);

	public void init(T obj);

	public Serializable insert(T obj);

	public List<T> searchByExample(T example, String... notIncludedProperties);

	public T searchById(Key key);

}
